<!doctype html>
<html>

<head>
    <title>Charmve's Notes Newsletter</title>
    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
    <meta name="description" content="Productivity, YouTubing, making anime, knowledge systems. This free newsletter, I hope, is one of the most interesting you'll ever read! From Charmve. " />
    <meta property="og:title" content="Charmve's Notes Newsletter" />
    <meta property="og:description" content="Productivity, YouTubing, making anime, knowledge systems. This free newsletter, I hope, is one of the most interesting you'll ever read! From Charmve. " />
    <meta property="og:image" content="https://embed.filekitcdn.com/e/hMm1FpKHJzcejaX44CQsbR/av3MCAJtcG6oB79FjfWMBp" />
    <meta property="og:type" content="website" />
    <meta name="twitter:title" content="Charmve's Notes Newsletter">
    <meta name="twitter:card" content="summary_large_image">
    <meta property="twitter:image" content="https://embed.filekitcdn.com/e/hMm1FpKHJzcejaX44CQsbR/av3MCAJtcG6oB79FjfWMBp" />
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin>
    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:400,700&display=swap" />
    <style>
        :root {
            --headings-font-family: Open Sans, sans-serif;
            --body-font-family: Open Sans, sans-serif;
            --content-background-color: #ffffff;
            --form-background-color: #ffffff;
            --content-border-radius: 8px;
            --background-background-color: #b4ddff;
            --background-background-image: url('undefined');
            --background-opacity: 0.5;
            --header-color: #4d4d4d;
            --header-font-size: 24px;
            --header-font-weight: 700;
            --subheader_text-color: #7d7d7d;
            --subheader_text-font-size: 15px;
            --title_text-color: #4d4d4d;
            --title_text-font-size: 18px;
            --field-color: #000;
            --field-border-color: #b0b0b0;
            --field-border-radius: 5px;
            --field-font-weight: 400;
            --button-color: #ffffff;
            --button-background-color: #2fc428;
            --button-border-radius: 5px;
            --button-font-weight: 700;
            --disclaimer-color: #666;
            --disclaimer-font-size: 12px;
        }
    </style>
    <link rel="stylesheet" type="text/css" href="https://pages.convertkit.com/templates/shared.css" />
    <link rel="stylesheet" type="text/css" href=https://pages.convertkit.com/templates/hudson/hudson.css></link>
    <script crossorigin src="https://cdnjs.cloudflare.com/ajax/libs/react/16.14.0/umd/react.production.min.js"></script>
    <script crossorigin src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.14.0/umd/react-dom.production.min.js"></script>
    <script src="https://pages.convertkit.com/templates/hudson/hudson.js"></script>
    <script>
        window.__props = {
            "id": 1777750,
            "action": "https://app.convertkit.com/forms/1777750/subscriptions",
            "uid": "a992e970c9",
            "title": "Charmve's Notes Newsletter",
            "description": "Productivity, YouTubing, making anime, knowledge systems. This free newsletter, I hope, is one of the most interesting you'll ever read! From Charmve. ",
            "template": "Hudson",
            "image": "https://embed.filekitcdn.com/e/hMm1FpKHJzcejaX44CQsbR/av3MCAJtcG6oB79FjfWMBp",
            "settings": {
                "after_subscribe": {
                    "action": "message",
                    "success_message": "It's Charmve time! âœ¨ just one more step: \n\nPlease confirm your subscription in your email inbox!\n \nOnce you do that, I'll can send you the Charmve's Notes Newsletter as I write them.",
                    "redirect_url": ""
                },
                "modal": {
                    "trigger": "timer",
                    "scroll_percentage": null,
                    "timer": 5,
                    "devices": "all",
                    "show_once_every": 15
                },
                "recaptcha": {
                    "enabled": false
                },
                "return_visitor": {
                    "action": "show",
                    "custom_content": ""
                },
                "slide_in": {
                    "display_in": "bottom_right",
                    "trigger": "timer",
                    "scroll_percentage": null,
                    "timer": 5,
                    "devices": "all",
                    "show_once_every": 15
                },
                "sticky_bar": {
                    "display_in": "top",
                    "trigger": "timer",
                    "scroll_percentage": null,
                    "timer": 5,
                    "devices": "all",
                    "show_once_every": 15
                },
                "powered_by": {
                    "show": true,
                    "url": "https://convertkit.com/features/forms?utm_campaign=poweredby&utm_content=form&utm_medium=referral&utm_source=dynamic"
                },
                "analytics": {
                    "google": null,
                    "fathom": null,
                    "facebook": null,
                    "segment": null,
                    "pinterest": null,
                    "sparkloop": null,
                    "googletagmanager": null
                }
            },
            "styles": [{
                "name": "headings.font-family",
                "value": "Open Sans, sans-serif"
            }, {
                "name": "body.font-family",
                "value": "Open Sans, sans-serif"
            }, {
                "name": "content.background-color",
                "value": "#ffffff"
            }, {
                "name": "form.background-color",
                "value": "#ffffff"
            }, {
                "name": "content.border-radius",
                "value": 8
            }, {
                "name": "background.background-color",
                "value": "#b4ddff"
            }, {
                "name": "background.background-image",
                "value": "url('undefined')"
            }, {
                "name": "background.opacity",
                "value": "0.5"
            }, {
                "name": "header.color",
                "value": "#4d4d4d"
            }, {
                "name": "header.font-size",
                "value": 24
            }, {
                "name": "header.font-weight",
                "value": 700
            }, {
                "name": "subheader_text.color",
                "value": "#7d7d7d"
            }, {
                "name": "subheader_text.font-size",
                "value": 15
            }, {
                "name": "title_text.color",
                "value": "#4d4d4d"
            }, {
                "name": "title_text.font-size",
                "value": 18
            }, {
                "name": "field.color",
                "value": "#000"
            }, {
                "name": "field.border-color",
                "value": "#b0b0b0"
            }, {
                "name": "field.border-radius",
                "value": 5
            }, {
                "name": "field.font-weight",
                "value": 400
            }, {
                "name": "button.color",
                "value": "#ffffff"
            }, {
                "name": "button.background-color",
                "value": "#2fc428"
            }, {
                "name": "button.border-radius",
                "value": 5
            }, {
                "name": "button.font-weight",
                "value": 700
            }, {
                "name": "disclaimer.color",
                "value": "#666"
            }, {
                "name": "disclaimer.font-size",
                "value": 12
            }],
            "elements": [{
                "id": 8343245,
                "name": "image",
                "type": "Image",
                "element_id": null,
                "parent_element_id": null,
                "order": null,
                "required": false,
                "src": "https://embed.filekitcdn.com/e/hMm1FpKHJzcejaX44CQsbR/av3MCAJtcG6oB79FjfWMBp",
                "upload_file_name": "Profile.png",
                "attachment_id": null,
                "parent_attachment_id": null,
                "caption": null,
                "url": null,
                "optimize": null,
                "alt": null
            }, {
                "id": 8343246,
                "name": "header",
                "type": "Text",
                "element_id": null,
                "parent_element_id": null,
                "order": null,
                "required": false,
                "region": null
            }, {
                "id": 8343247,
                "name": "e588e122-2a31-4b5e-b635-b49e9dd38284",
                "type": "Text",
                "element_id": "e588e122-2a31-4b5e-b635-b49e9dd38284",
                "parent_element_id": null,
                "order": 0,
                "required": false,
                "region": "subheader"
            }, {
                "id": 8343248,
                "name": "36f8960a-1816-4e13-97f2-e04fc17cc552",
                "type": "Text",
                "element_id": "36f8960a-1816-4e13-97f2-e04fc17cc552",
                "parent_element_id": null,
                "order": 0,
                "required": false,
                "region": "title"
            }, {
                "id": 8343249,
                "name": "submit",
                "type": "Button",
                "element_id": null,
                "parent_element_id": null,
                "order": null,
                "required": false
            }, {
                "id": 8343250,
                "name": "email_address",
                "type": "Input",
                "element_id": null,
                "parent_element_id": null,
                "order": null,
                "required": true,
                "label": "Email Address"
            }, {
                "id": 8343251,
                "name": "disclaimer",
                "type": "Text",
                "element_id": null,
                "parent_element_id": null,
                "order": null,
                "required": false,
                "region": null
            }],
            "css": "",
            "template_url": "https://pages.convertkit.com/templates/hudson/hudson.js",
            "css_urls": ["https://pages.convertkit.com/templates/hudson/hudson.css"],
            "ckjs_version": "5",
            "context": {}
        }
    </script>
    <link rel="shortcut icon" type="image/x-icon" href="charmve.github.io/favicon.ico" />
    <style>
        body {
            margin: 0;
            padding: 0
        }

        body>.formkit-form {
            margin: 80px auto;
        }
    </style>
    <style>
    </style>
    <script>
        ! function(e, n) {
            "object" == typeof exports && "undefined" != typeof module ? n() : "function" == typeof define && define.amd ? define(n) : n()
        }(0, function() {
            "use strict";

            function e(e) {
                var n = this.constructor;
                return this.then(function(t) {
                    return n.resolve(e()).then(function() {
                        return t
                    })
                }, function(t) {
                    return n.resolve(e()).then(function() {
                        return n.reject(t)
                    })
                })
            }

            function n() {}

            function t(e) {
                if (!(this instanceof t)) throw new TypeError("Promises must be constructed via new");
                if ("function" != typeof e) throw new TypeError("not a function");
                this._state = 0, this._handled = !1, this._value = undefined, this._deferreds = [], u(e, this)
            }

            function o(e, n) {
                for (; 3 === e._state;) e = e._value;
                0 !== e._state ? (e._handled = !0, t._immediateFn(function() {
                    var t = 1 === e._state ? n.onFulfilled : n.onRejected;
                    if (null !== t) {
                        var o;
                        try {
                            o = t(e._value)
                        } catch (f) {
                            return void i(n.promise, f)
                        }
                        r(n.promise, o)
                    } else(1 === e._state ? r : i)(n.promise, e._value)
                })) : e._deferreds.push(n)
            }

            function r(e, n) {
                try {
                    if (n === e) throw new TypeError("A promise cannot be resolved with itself.");
                    if (n && ("object" == typeof n || "function" == typeof n)) {
                        var o = n.then;
                        if (n instanceof t) return e._state = 3, e._value = n, void f(e);
                        if ("function" == typeof o) return void u(function(e, n) {
                            return function() {
                                e.apply(n, arguments)
                            }
                        }(o, n), e)
                    }
                    e._state = 1, e._value = n, f(e)
                } catch (r) {
                    i(e, r)
                }
            }

            function i(e, n) {
                e._state = 2, e._value = n, f(e)
            }

            function f(e) {
                2 === e._state && 0 === e._deferreds.length && t._immediateFn(function() {
                    e._handled || t._unhandledRejectionFn(e._value)
                });
                for (var n = 0, r = e._deferreds.length; r > n; n++) o(e, e._deferreds[n]);
                e._deferreds = null
            }

            function u(e, n) {
                var t = !1;
                try {
                    e(function(e) {
                        t || (t = !0, r(n, e))
                    }, function(e) {
                        t || (t = !0, i(n, e))
                    })
                } catch (o) {
                    if (t) return;
                    t = !0, i(n, o)
                }
            }
            var c = setTimeout;
            t.prototype["catch"] = function(e) {
                return this.then(null, e)
            }, t.prototype.then = function(e, t) {
                var r = new this.constructor(n);
                return o(this, new function(e, n, t) {
                    this.onFulfilled = "function" == typeof e ? e : null, this.onRejected = "function" == typeof n ? n : null, this.promise = t
                }(e, t, r)), r
            }, t.prototype["finally"] = e, t.all = function(e) {
                return new t(function(n, t) {
                    function o(e, f) {
                        try {
                            if (f && ("object" == typeof f || "function" == typeof f)) {
                                var u = f.then;
                                if ("function" == typeof u) return void u.call(f, function(n) {
                                    o(e, n)
                                }, t)
                            }
                            r[e] = f, 0 == --i && n(r)
                        } catch (c) {
                            t(c)
                        }
                    }
                    if (!e || "undefined" == typeof e.length) throw new TypeError("Promise.all accepts an array");
                    var r = Array.prototype.slice.call(e);
                    if (0 === r.length) return n([]);
                    for (var i = r.length, f = 0; r.length > f; f++) o(f, r[f])
                })
            }, t.resolve = function(e) {
                return e && "object" == typeof e && e.constructor === t ? e : new t(function(n) {
                    n(e)
                })
            }, t.reject = function(e) {
                return new t(function(n, t) {
                    t(e)
                })
            }, t.race = function(e) {
                return new t(function(n, t) {
                    for (var o = 0, r = e.length; r > o; o++) e[o].then(n, t)
                })
            }, t._immediateFn = "function" == typeof setImmediate && function(e) {
                setImmediate(e)
            } || function(e) {
                c(e, 0)
            }, t._unhandledRejectionFn = function(e) {
                void 0 !== console && console && console.warn("Possible Unhandled Promise Rejection:", e)
            };
            var l = function() {
                if ("undefined" != typeof self) return self;
                if ("undefined" != typeof window) return window;
                if ("undefined" != typeof global) return global;
                throw Error("unable to locate global object")
            }();
            "Promise" in l ? l.Promise.prototype["finally"] || (l.Promise.prototype["finally"] = e) : l.Promise = t
        });
    </script>







</head>

<body data-template="Hudson">

    <div id="container">
        <div class="formkit-page" style="background-color:#b4ddff">
            <div style="background-color:#b4ddff;background-image:url(&#x27;undefined&#x27;);opacity:0.5" class="formkit-background"></div>
            <div class="formkit-container">
                <div class="formkit-card" style="background-color:#ffffff;border-radius:8px">
                    <div class="formkit-image formkit-avatar" aspectRatio="1" shape="circle" defaults="[object Object]"><img src="https://avatars.githubusercontent.com/u/29084184?v=4" style="max-width:100%" /></div>
                    <div class="formkit-header" style="color:#4d4d4d;font-size:24px;font-weight:700">
                        <h1>(FREE) Charmve&#x27;s Notes Newsletter</h1>
                    </div>
                    <div class="formkit-subheader">
                        <div class="formkit-text " style="color:#7d7d7d;font-size:15px" type="Text" id="8343247" content="&lt;p&gt;The curated, written version of my thoughts&lt;/p&gt;" element_id="e588e122-2a31-4b5e-b635-b49e9dd38284" order="0" region="subheader">
                            <p>The curated, written version of my thoughts</p>
                        </div>
                    </div>
                    <form method="POST" action="https://app.convertkit.com/forms/1777750/subscriptions" style="background-color:#ffffff" data-sv-form="1777750" data-uid="a992e970c9" class="formkit-form">
                        <div class="formkit-title">
                            <div class="formkit-text " style="color:#4d4d4d;font-size:18px" type="Text" id="8343248" content="&lt;p&gt;Hi! I&amp;#x27;m Charmve, a GitHuber, Bloger, and Youtuber in China. &lt;br/&gt;This is my secret newsletter, so I&amp;#x27;m glad you found it. ;)&lt;br/&gt;&lt;/p&gt;&lt;p&gt;Here, I&amp;#x27;ll write about: &lt;strong&gt;productivity tips&lt;/strong&gt;, &lt;strong&gt;YouTube, open-source, anime&lt;/strong&gt;, and literally any topic that my YouTube channel covers. &lt;strong&gt;If I ever launch or make anything new too, you&amp;#x27;ll be the first to know. 🥳&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;No spam, ever. It&amp;#x27;s free.&lt;br/&gt;And I hope it&amp;#x27;s the best thing you ever read. :) &lt;/p&gt;"
                                element_id="36f8960a-1816-4e13-97f2-e04fc17cc552" order="0" region="title">
                                <p>Hi! I&#x27;m <b>Charmve</b>, a GitHuber, Bloger, and Youtuber in China. <br/>This is my secret newsletter, so I&#x27;m glad you found it. ;)<br/><br></p>
                                <p>Here, I&#x27;ll write about: <strong>AI research</strong>, <strong>productivity tips</strong>, <strong>YouTube, open-source, anime</strong>, and literally any topic that my YouTube channel covers. <strong>If I ever launch or make anything new too, you&#x27;ll be the first to know. 🥳</strong></p>
                                <p><strong><br></strong></p>
                                <p>No spam, ever. It&#x27;s free.<br/>And I hope it&#x27;s the best thing you ever read. :) </p>
                            </div>
                        </div>
                        <ul class="formkit-alert formkit-alert-error" data-element="errors" data-group="alert"></ul>
                        <div class="formkit-fields" data-stacked="false">
                            <div class="formkit-field"><input type="email" class="formkit-input" name="email_address" style="color:#000;border-color:#b0b0b0;border-radius:5px;font-weight:400" placeholder="Email Address" aria-label="Email Address" required="" /></div><button class="formkit-submit"
                                style="color:#ffffff;background-color:#2fc428;border-radius:5px;font-weight:700" data-element="submit"><div class="formkit-spinner"><div></div><div></div><div></div></div><span>Subscribe</span></button></div>
                        <div class="formkit-disclaimer"
                            style="color:#666;font-size:12px">We respect your privacy. Unsubscribe at any time.</div>
                    </form>
                </div>
            </div>
            <div class="formkit-powered-by-convertkit-container"><a href="https://convertkit.com/features/forms?utm_campaign=poweredby&amp;utm_content=form&amp;utm_medium=referral&amp;utm_source=dynamic" rel="nofollow" class="formkit-powered-by-convertkit" data-element="powered-by" data-variant="dark" target="_blank">Powered By ConvertKit</a></div>
        </div>
    </div>
    <script src="https://pages.convertkit.com/templates/landing-page.hydrate.js"></script>
    <script src="https://pages.convertkit.com/ckjs/ck.5.js"></script>
</body>

</html>